/**
 * @file simulacao.h
 * Contém as funções de alto nível que realizam o comportamento da simulação.
 */

#ifndef SIMULACAO_H_
#define SIMULACAO_H_


/**
 * Cria uma nova formiga.
 *
 * Essa função aloca os recursos necessários e inicializa as variáveis de uma
 * formiga.
 * @return A nova formiga criada
 */
Formiga new_formiga();


/**
 * Apaga uma formiga.
 *
 * Desaloca os recursos e zera as variáveis de uma estrutura Formiga.
 * @param formiga A formiga a ser apagada
 */
void del_formiga(Formiga *formiga);


/**
 * Faz a formiga dar o seu próximo passo.
 *
 * Essa função já leva em consideração se a formiga está indo ou voltando para
 * o formigueiro, faz ela colocar o ferormônio, verifica os custos, as
 * probabilidades e os limites.
 */
void prox_passo(Formiga *formiga);


/**
 * Faz o ferormônio evaporar de acordo com a taxa de evaporação especificada.
 */
void evapora();


#endif
